In object-oriented programming, real-world objects are modeled by software objects that have encapsulated therein special procedures and data elements. In object-oriented programming jargon, procedures are referred to as methods, and data elements are referred to as data members. To avoid having to redefine the same methods and data members for each and every occurrence of an object, object-oriented programming provides the concept of classes. An inheritance structure of one or more levels of increasingly more specialized classes is created to provide templates that define the methods and variables to be included in the objects of each class. Therefore, an object belonging to a class, which is an instance of that class, contains the special behavior defined by the class. In this manner, each object is an instance of a defined class or template and the need to redefine the methods and data members for each occurrence of the object is eliminated.
Microsoft Windows.RTM. applications displaying information in the form of windows and dialog boxes are becoming the norm for graphical user interfaces. Object-oriented programming techniques and languages are typically used to create these Windows.RTM. applications. The windows can be easily manipulated by the user in size, location, and arrangement. Several special types of windows are provided for displaying as well as receiving information. For example, a list box is a window that provides a list of text strings and a combo box is a window that provides a list of text strings as well as editing functions. A user may select one or more items in the list in both types of boxes and further edit the list in the combo box.
Tools are currently available to allow programmers to generate code for graphical interface objects such as menus, dialogs and windows. One tool is the such Object/Designer.RTM. by ImageSoft Incorporated, Port Washington, N.Y. However, the interface objects generated by these tools are not linked to any data or methods in the application. For example, if the graphical user interface generator tool is used to generate a list box containing a list of camera presets for a particular video camera, the selection of a camera preset would not automatically result in changing the camera pan, tilt, focus and zoom to achieve the selected preset. The programmer has to write explicit code to link the text items in the list box to business objects, in this case the camera, in order for the selection to have any real meaning. When there are many business objects requiring linkage to interface objects, the programmer has to write the code for each and every one of the links. This becomes time consuming and error-prone to write and debug, since the explicit code has to be modified everywhere when the application is expanded or when the objects are reused in another context.